package com.yg.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yg.config.result.R;
import com.yg.entity.readAndWriteTemplates.TechnologyCompetitionTemplate;
import com.yg.entity.singleEntity.TechnologyCompetition;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * <p>
 * 对应sheet13，此表是教师指导大学生参加科技竞赛表 服务类
 * </p>
 *
 * @author YingGu
 * @since 2020-11-04
 */
public interface TechnologyCompetitionService extends IService<TechnologyCompetition> {
    /**
     * excel录入
     *
     * @param file 上传到服务器的excel的路径
     * @return 返回统一结果类
     */
    R readExcel(MultipartFile file);

    /**
     * excel导出
     *
     * @return 返回统一结果类
     */
    R writeExcel(HttpServletResponse response);

    /**
     * 分页查询
     *
     * @param currentPage 当前页码
     * @param limit        每页需要呈现的数据条数
     * @return 返回查询到的List
     */
    R selectPage(int currentPage, int limit);

    /**
     * 新增数据或修改数据
     *
     * @param template 传入封装好的pojo
     * @return 返回统一结果类
     */

    R insertOrUpdate(TechnologyCompetitionTemplate template) ;


    /**
     * 删除数据
     *
     * @param template entity 传入封装好的pojo
     * @return 返回统一结果类
     */
    R deleteById(TechnologyCompetition template);



    /**
     * 模糊查询
     * @param currentPage 当前页码
     * @param limit  每页需要呈现的数据条数
     * @param entity 传入需要模糊查询的各项参数
     * @return 返回统一结果类
     */
    R selectByCondition(int currentPage, int limit, TechnologyCompetition entity);

    /**
     * @param entity   使用entity接受模糊查询的条件参数
     * @param response response
     * @return 统一返回R类
     */
    R writeByCondition(TechnologyCompetition entity, HttpServletResponse response);
}
